﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Rockfan.Framework;
using Rockfan.Framework.Audio.Midi;


namespace Rockfan.Framework.Audio
{
    public sealed class NoteTrackEvent : TrackEvent
    {
        #region Properties

        /// <summary>
        /// Gets the Note ID
        /// </summary>
        public NoteType ID { get; internal set; }

        public Difficulty Difficulty { get; internal set; }

        /// <summary>
        /// Gets a value indicating the amount of time this note event lasts in seconds
        /// </summary>
        public float Length { get; private set; }

        #endregion

        #region Constructor

        /// <summary>
        /// Constructs a new instance of this object
        /// </summary>
        /// <param name="start">a float value indicating the amount of time in seconds since the start of the track</param>
        /// <param name="ID">a value indicating the note id associated with this event</param>
        /// <param name="length">a value indicating the amount of time this note event lasts in seconds</param>
        public NoteTrackEvent(float start, float length, NoteType type, Difficulty difficulty)
            : base(start)
        {
            this.ID = type;
            this.Length = length;
            this.Difficulty = difficulty;
        }

        #endregion
    }
}
